<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 给定一个数组 nums，编写一个函数将所有 0 移动到数组的末尾，同时保持非零元素的相对顺序。
        var moveZeroes = function (nums) {
            let l = nums.length;
            if (l == 1) {
                return nums;
            } else {
                for (let i = 0; i < l; i++) {
                    for (let j = i + 1; j < l; j++) {
                        if (nums[i] == 0 && nums[j] != 0) {
                            let temp = nums[i];
                            nums[i] = nums[j];
                            nums[j] = temp;
                            break;
                        }
                    }
                }
                return nums;
            }
        };

        // 思路：设置一个index，表示非0的个数，循环遍历数组；
        // 如果不是0，将非0值移动到第index位置，然后index+1；
        // 遍历结束后，index表示非0的个数，再次遍历，从index位置后全是0
        var moveZeroes = function (nums) {
            if (nums == null || nums.length <= 1) {
                return;
            }
            let index = 0;
            for (let i = 0; i < nums.length; i++) {
                if (nums[i] != 0) {
                    nums[index] = nums[i];
                    index++;
                }
            }
            for (let i = index; i < nums.length; i++) {
                nums[i] = 0;
            }
            return nums;
        };


        let nums = moveZeroes([0, 1, 0, 3, 12]);

        console.log(nums);
    </script>
</body>

</html>